package com.vimhe.easyimport.reader;

import java.util.Map;

/**
 * Excel数据读取器接口
 *
 * @author Vimhe
 */
public interface IExcelReader {

    /**
     * 获取工作表中的最大列数
     *
     * @param sheetIndex 表索引
     * @param rowIndex   当前行
     * @return 当前行的总列数
     */
    int getCellCount(final int sheetIndex, final int rowIndex);

    /**
     * 读取一个单元格的数据
     *
     * @param sheetIndex 表索引
     * @param rowIndex   当前行
     * @param cellIndex  当前列
     * @param cellValue  当前列的数据
     * @return 当前列的数据
     */
    Object readCell(final int sheetIndex, final int rowIndex, String cellIndex, Object cellValue);

    /**
     * 读取一行的数据
     *
     * @param sheetIndex 表索引
     * @param rowIndex   当前行
     * @param rowValue   当前行的数据
     * @return 当前行的数据
     */
    Map<String, Object> readRow(final int sheetIndex, final int rowIndex, Map<String, Object> rowValue);

    /**
     * 读取一个工作表的数据
     *
     * @param sheetIndex 表索引
     * @param sheetValue 当前工作表的数据
     * @return 当前工作表的数据
     */
    Map<Integer, Map<String, Object>> readSheet(final int sheetIndex, Map<Integer, Map<String, Object>> sheetValue);

    /**
     * 读取一个文件的数据
     *
     * @param fileValue 当前文件的数据
     */
    void readFile(Map<Integer, Map<Integer, Map<String, Object>>> fileValue);

}
